package com.nur.noteishon.httpclient;

import java.util.ArrayList;
import java.util.List;

import org.apache.http.NameValuePair;
import org.apache.http.message.BasicNameValuePair;
import org.json.JSONObject;

import android.util.Log;

public class FuncionesHttp {
	private JsonParser parser;
	private String URL;

	private static String agregarUsuario_Tag = "agregarUsuario";
	private static String agregarNota_Tag = "agregarNota";
	private static String borrarNota_Tag = "borrarNota";
	private static String listarNotas_Tag = "listarNotas";
	private static String crearBackup_Tag = "crearBackup";
	private static String agregarNotaBackup_Tag = "agregarNotaBackup";
	private static String obtenerListaBackup_tag = "obtenerListaBackup";
	private static String obtenerBackup_Tag = "obtenerBackup";
	private static String obtenerNotasNuevo_Tag = "obtenerNotasNuevo";

	public FuncionesHttp(String url) {
		this.URL = url;
		parser = new JsonParser();
	}

	public JSONObject agregarUsuario(String usuario) {
		try {

			List<NameValuePair> parametros = new ArrayList<NameValuePair>();
			parametros.add(new BasicNameValuePair("tag", agregarUsuario_Tag));
			parametros.add(new BasicNameValuePair("login", usuario));
			JSONObject json = parser.obtenerJSONdeURL(URL, parametros);
			return json;
		} catch (Exception e) {
			Log.d("HttpConnectionError",
					"Error al hacer el metodo agregarUsuario", e);
		}

		return null;
	}

	public JSONObject agregarNota(int idUsuario, String comentario,
			String horaInicio, String horaFin, String tipo, String fecha) {
		try {
			List<NameValuePair> parametros = new ArrayList<NameValuePair>();
			parametros.add(new BasicNameValuePair("tag", agregarNota_Tag));
			parametros.add(new BasicNameValuePair("usuario", String
					.valueOf(idUsuario)));
			parametros.add(new BasicNameValuePair("comentario", comentario));
			parametros.add(new BasicNameValuePair("inicio", horaInicio));
			parametros.add(new BasicNameValuePair("fin", horaFin));
			parametros.add(new BasicNameValuePair("tipo", tipo));
			parametros.add(new BasicNameValuePair("fecha", fecha));
			JSONObject json = parser.obtenerJSONdeURL(URL, parametros);
			return json;

		} catch (Exception e) {
			Log.d("HttpConnectionError",
					"Error al hacer el metodo agregarNota", e);
		}
		return null;
	}

	public JSONObject borrarNota(int idNota) {
		try {
			List<NameValuePair> parametros = new ArrayList<NameValuePair>();
			parametros.add(new BasicNameValuePair("tag", borrarNota_Tag));
			parametros.add(new BasicNameValuePair("nota", String
					.valueOf(idNota)));
			JSONObject json = parser.obtenerJSONdeURL(URL, parametros);
			return json;

		} catch (Exception e) {
			Log.d("HttpConnectionError", "Error al hacer el metodo borrarNota",
					e);
		}
		return null;
	}

	public JSONObject listarNotas(int idUsuario, String fecha) {
		try {
			List<NameValuePair> parametros = new ArrayList<NameValuePair>();
			parametros.add(new BasicNameValuePair("tag", listarNotas_Tag));
			parametros.add(new BasicNameValuePair("usuario", String
					.valueOf(idUsuario)));
			parametros.add(new BasicNameValuePair("fecha", fecha));
			JSONObject json = parser.obtenerJSONdeURL(URL, parametros);
			return json;

		} catch (Exception e) {
			Log.d("HttpConnectionError",
					"Error al hacer el metodo listarNotas", e);
		}
		return null;
	}

	public JSONObject crearBackup(int idUsuario) {
		try {
			List<NameValuePair> parametros = new ArrayList<NameValuePair>();
			parametros.add(new BasicNameValuePair("tag", crearBackup_Tag));
			parametros.add(new BasicNameValuePair("usuario", String
					.valueOf(idUsuario)));
			JSONObject json = parser.obtenerJSONdeURL(URL, parametros);
			return json;

		} catch (Exception e) {
			Log.d("HttpConnectionError",
					"Error al hacer el metodo crearBackup", e);
		}
		return null;

	}

	public JSONObject agregarNotaBackup(int idBackup, int idNota,
			String comentario, String hora_inicio, String hora_fin,
			String fecha, String tipo) {
		try {
			List<NameValuePair> parametros = new ArrayList<NameValuePair>();
			parametros
					.add(new BasicNameValuePair("tag", agregarNotaBackup_Tag));
			parametros.add(new BasicNameValuePair("backup", String
					.valueOf(idBackup)));
			parametros.add(new BasicNameValuePair("comentario", comentario));
			parametros.add(new BasicNameValuePair("hora_inicio", hora_inicio));
			parametros.add(new BasicNameValuePair("hora_fin", hora_fin));
			parametros.add(new BasicNameValuePair("fecha", fecha));
			parametros.add(new BasicNameValuePair("tipo", tipo));
			JSONObject json = parser.obtenerJSONdeURL(URL, parametros);
			return json;

		} catch (Exception e) {
			Log.d("HttpConnectionError",
					"Error al hacer el metodo agregarNotaBackup", e);
		}
		return null;
	}

	public JSONObject obtenerListaBackup(int idUsuario) {
		try {
			List<NameValuePair> parametros = new ArrayList<NameValuePair>();
			parametros
					.add(new BasicNameValuePair("tag", obtenerListaBackup_tag));
			parametros.add(new BasicNameValuePair("usuario", String
					.valueOf(idUsuario)));
			JSONObject json = parser.obtenerJSONdeURL(URL, parametros);

			return json;

		} catch (Exception e) {
			Log.d("HttpConnectionError",
					"Error al hacer el metodo obtenerListaBackup", e);
		}
		return null;
	}

	public JSONObject obtenerBackup(int idBackup) {
		try {
			List<NameValuePair> parametros = new ArrayList<NameValuePair>();
			parametros.add(new BasicNameValuePair("tag", obtenerBackup_Tag));
			parametros.add(new BasicNameValuePair("backup", String
					.valueOf(idBackup)));
			JSONObject json = parser.obtenerJSONdeURL(URL, parametros);

			return json;

		} catch (Exception e) {
			Log.d("HttpConnectionError",
					"Error al hacer el metodo obtenerBackup", e);
		}
		return null;
	}

	public JSONObject obtenerNotasNuevo(int idUsuario) {
		try {
			List<NameValuePair> param = new ArrayList<NameValuePair>();
			param.add(new BasicNameValuePair("tag", obtenerNotasNuevo_Tag));
			param.add(new BasicNameValuePair("usuario", String
					.valueOf(idUsuario)));
			JSONObject json = parser.obtenerJSONdeURL(URL, param);

			return json;

		} catch (Exception e) {
			Log.d("HttpConnectionError",
					"Error al hacer el metodo obtenerNotasNuevo", e);
		}
		return null;
	}
}
